home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / win31 / macsyma.arj / MACSDEMO.EXE / SOLVE.OUT < prev    next >
Text File  |  1993-09-11  |  10KB  |  128 lines

  1.  
  2. (c1) /*  DEMONSTRATION OF THE MACSYMA FUNCTION `SOLVE'  */
  3.  
  4. (kill(a,b,c,d,p,q), breakup:false)$
  5.  
  6. (c2) solve(q^2*x^2+p^2*q*x-p*q*x-p^3=0,x);
  7. |$label(0,15,Times New Roman,$(d2$))$open([)x$hinge()$in( = )$in( - )$q($sup(p,2),q)$ina($, )$hinge()x$hinge()$in( = )$q(p,q)$close(])
  8.  
  9. (c3) solve(x^6-a=0,x);
  10. |$label(0,15,Times New Roman,$(d3$))$open([)x$hinge()$in( = )$q($paren($sqrt(3)$in( )$italictext(i)$in( + )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$q($paren($sqrt(3)$in( )$italictext(i)$in( - )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$in( - )$sup(a,1$in(/)6)$ina($, )$hinge()x$hinge()$in( = )$in( - )$q($paren($sqrt(3)$in( )$italictext(i)$in( + )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$in( - )$q($paren($sqrt(3)$in( )$italictext(i)$in( - )1,$(,$))$in( )$sup(a,1$in(/)6),2)$ina($, )$hinge()x$hinge()$in( = )$sup(a,1$in(/)6)$close(])
  11.  
  12. (c4) /* If the first argument is not an equation, it is assumed that it is the
  13.    left hand side of an equation whose right hand side is 0.
  14.    The second argument (the variables to be solved for) is optional,
  15.    if the equations are to be solved for all variables in the expression. */
  16. solve(x^4+1);
  17. |$label(0,15,Times New Roman,$(d4$))$open([)x$hinge()$in( = )$in( - )$q(1,$sqrt($italictext(i)))$ina($, )$hinge()x$hinge()$in( = )$in( - )$sqrt($italictext(i))$ina($, )$hinge()x$hinge()$in( = )$q(1,$sqrt($italictext(i)))$ina($, )$hinge()x$hinge()$in( = )$sqrt($italictext(i))$close(])
  18.  
  19. (c5) /* Simultaneous linear equations: */   
  20. solve([x+y+5,x-2*y+6]);
  21. |$label(0,15,Times New Roman,$(d5$))$open([)$open([)y$hinge()$in( = )$q(1,3)$ina($, )$hinge()x$hinge()$in( = )$in( - )$q(16,3)$close(])$close(])
  22.  
  23. (c6) /* Reduction of a set of (non-linear) polynomial equations: */
  24. solve([x*y=1, x+y=2]);
  25. C:\MACSD2B\library1\algsys.fas being loaded.
  26. C:\MACSD2B\library1\grobner.fas being loaded.
  27. C:\MACSD2B\library1\result.fas being loaded.
  28. |$label(0,15,Times New Roman,$(d6$))$open([)$open([)y$hinge()$in( = )1$ina($, )$hinge()x$hinge()$in( = )1$close(])$close(])
  29.  
  30. (c7) /* A problem involving trigonometric or arctrigonometric functions: */
  31. solve(asin(x)=1,x);
  32. |$label(0,15,Times New Roman,$(d7$))$open([)x$hinge()$in( = )sin$paren(1)$close(])
  33.  
  34. (c8) /* A mixture of types: */
  35. solve((sin(x)^2+1)^2*(x+1)^2,x);
  36.  
  37. SOLVE is using arc-trig functions to get a solution.
  38. Some solutions may be lost.
  39. |$label(0,15,Times New Roman,$(d8$))$open([)x$hinge()$in( = )$in( - )$italictext(i)$in( )asinh$paren(1)$ina($, )$hinge()x$hinge()$in( = )$italictext(i)$hinge()$in( )asinh$paren(1)$ina($, )$hinge()x$hinge()$in( = )$in( - )1$close(])
  40.  
  41. (c9) solve(asin(a*x^2+b*x+c)+d,x);
  42. |$label(0,15,Times New Roman,$(d9$))$open([)x$hinge()$in( = )$in( - )$q($sqrt($in( - )4$in( )a$in( )sin$paren(d)$in( - )4$in( )a$in( )c$in( + )$sup(b,2))$in( + )b,2$in( )a)$ina($, )$hinge()x$hinge()$in( = )$q($sqrt($in( - )4$in( )a$in( )sin$paren(d)$in( - )4$in( )a$in( )c$in( + )$sup(b,2))$in( - )b,2$in( )a)$close(])
  43.  
  44. (c10) /* Application of the cubic formula: */
  45. eq:4*x^3+x+10;
  46. |$label(0,15,Times New Roman,$(d10$))4$in( )$sup(x,3)$hinge()$in( + )x$hinge()$in( + )10
  47.  
  48. (c11) solve(eq);
  49. |$label(0,15,Times New Roman,$(d11$))$open([)x$hinge()$in( = )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3)$in( )$paren($in( - )$q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),$(,$))$hinge()$in( - )$q($q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),12$in( )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3))$ina($, )$hinge()x$hinge()$in( = )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3)$in( )$paren($q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),$(,$))$hinge()$in( - )$q($in( - )$q($sqrt(3)$in( )$italictext(i),2)$in( - )$q(1,2),12$in( )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3))$ina($, )$hinge()x$hinge()$in( = )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3)$hinge()$in( - )$q(1,12$in( )$sup($paren($q($sqrt(2701),24$in( )$sqrt(3))$in( - )$q(5,4),$(,$)),1$in(/)3))$close(])
  50.  
  51. (c12) /* Let's check one answer by substituting back. */
  52. answer:last(%)$
  53.  
  54. (c13) ev(eq,answer,expand,ratsimp);
  55. |$label(0,15,Times New Roman,$(d13$))0
  56.  
  57. (c14) /* To demonstrate the superiority of this over numerical approximation,
  58.    we evaluate ANSWER numerically, then substitute back. */
  59. answer_numerical:ev(answer,numer);
  60. |$label(0,15,Times New Roman,$(d14$))x$hinge()$in( = )$in( - )1.29722
  61.  
  62. (c15) ev(eq,answer_numerical,expand);
  63. |$label(0,15,Times New Roman,$(d15$))$in( - )0.02901
  64.  
  65. (c16) /* SOLVE can handle polynomials which decompose to solvable equations. */
  66. moby: 1769472*s^8-3538944*s^7+3907584*s^6-2764800*s^5
  67.          +1378560*s^4-484608*s^3+119520*s^2-18768*s+1585;
  68. |$label(0,15,Times New Roman,$(d16$))1769472$in( )$sup(s,8)$hinge()$in( - )3538944$in( )$sup(s,7)$hinge()$in( + )3907584$in( )$sup(s,6)$hinge()$in( - )2764800$in( )$sup(s,5)$hinge()$in( + )1378560$in( )$sup(s,4)$hinge()$in( - )484608$in( )$sup(s,3)$hinge()$in( + )119520$in( )$sup(s,2)$hinge()$in( - )18768$in( )s$hinge()$in( + )1585
  69.  
  70. (c17) /* Here are the decompositions it uses: */
  71. polydecomp(moby,s);
  72. C:\MACSD2B\library1\combin.fas being loaded.
  73. |$label(0,15,Times New Roman,$(d17$))$open([)3$in( )$sup(s,2)$hinge()$in( - )2$ina($, )$hinge()$q($sup(s,2)$in( - )13,12)$ina($, )$hinge()6$in( )$sup(s,2)$hinge()$in( + )11$ina($, )$hinge()4$in( )s$hinge()$in( - )1$close(])
  74.  
  75. (c18) /* Note MOBY can't be factored. */
  76. factor(moby);
  77. |$label(0,15,Times New Roman,$(d18$))1769472$in( )$sup(s,8)$hinge()$in( - )3538944$in( )$sup(s,7)$hinge()$in( + )3907584$in( )$sup(s,6)$hinge()$in( - )2764800$in( )$sup(s,5)$hinge()$in( + )1378560$in( )$sup(s,4)$hinge()$in( - )484608$in( )$sup(s,3)$hinge()$in( + )119520$in( )$sup(s,2)$hinge()$in( - )18768$in( )s$hinge()$in( + )1585
  78.  
  79. (c19) /* But it can be solved anyway. */
  80. solve(moby);
  81. |$label(0,15,Times New Roman,$(d19$))$open([)s$hinge()$in( = )$in( - )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$in( - )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2)))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( - )12$in( )$sqrt(2)))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$in( - )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt($sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2))$in( + )11$in( )$sup(3,1$in(/)4))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$in( - )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2)))$in( )$italictext(i)$in( - )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$ina($, )$hinge()s$hinge()$in( = )$q($sqrt(11$in( )$sup(3,1$in(/)4)$in( - )$sqrt(13$in( )$sqrt(3)$in( + )12$in( )$sqrt(2)))$in( )$italictext(i)$in( + )$sup(3,1$in(/)8)$in( )$sqrt(6),4$in( )$sup(3,1$in(/)8)$in( )$sqrt(6))$close(])
  82.  
  83. (c20) /* Some additional capabilities: */
  84. solve(5^x=%e,x);
  85. |$label(0,15,Times New Roman,$(d20$))$open([)x$hinge()$in( = )$q(1,log$paren(5))$close(])
  86.  
  87. (c21) solve(%e^(2*x)+2*%e^x+1=z,x);
  88. |$label(0,15,Times New Roman,$(d21$))$open([)x$hinge()$in( = )log$paren($in( - )$sqrt(z)$in( - )1)$ina($, )$hinge()x$hinge()$in( = )log$paren($sqrt(z)$in( - )1)$close(])
  89.  
  90. (c22) /* SOLVE does not directly solve equations involving radicals.
  91.    For example: */
  92. eqn: x + sqrt(x) = 1 $
  93.  
  94. (c23) solve(eqn,x),solveexplicit:true;
  95. |$label(0,15,Times New Roman,$(d23$))$open([)$close(])
  96.  
  97. (c24) /* But such equations can often be solved "manually" using 
  98.    techniques such as squaring both sides of an equation: */
  99. solve(eqn,sqrt(x));
  100. |$label(0,15,Times New Roman,$(d24$))$open([)$sqrt(x)$hinge()$in( = )1$hinge()$in( - )x$close(])
  101.  
  102. (c25) answer: solve(%^2,x);
  103. |$label(0,15,Times New Roman,$(d25$))$open([)x$hinge()$in( = )$in( - )$q($sqrt(5)$in( - )3,2)$ina($, )$hinge()x$hinge()$in( = )$q($sqrt(5)$in( + )3,2)$close(])
  104.  
  105. (c26) /* We must check the proposed solutions returned by SOLVE for 
  106.    validity.  SQRTDENEST or SFLOAT can often be used for this 
  107.    purpose: */
  108. /* The first proposed solution is ok: */
  109. expand(sqrtdenest(subst(answer[1],eqn)));
  110. C:\MACSD2B\share\sqdnst.fas being loaded.
  111. |$label(0,15,Times New Roman,$(d26$))1$hinge()$in( = )1
  112.  
  113. (c27) /* or */
  114. sfloat(subst(answer[1],eqn));
  115. |$label(0,15,Times New Roman,$(d27$))1.0$hinge()$in( = )1.0
  116.  
  117. (c28) /* The second proposed solution is invalid: */
  118. expand(sqrtdenest(subst(answer[2],eqn)));
  119. |$label(0,15,Times New Roman,$(d28$))$sqrt(5)$hinge()$in( + )2$hinge()$in( = )1
  120.  
  121. (c29) /* or */
  122. sfloat(subst(answer[2],eqn));
  123. |$label(0,15,Times New Roman,$(d29$))4.23607$hinge()$in( = )1.0
  124.  
  125. (c30) /* Do EXAMPLE(SOLVE); for more examples.
  126. Clean up: */
  127. (remvalue(answer,answer_numerical,eq,eqn,moby),reset(breakup))$
  128.